package com.avic.map.controller;


import com.avic.map.common.config.CommonProperties;
import com.avic.map.common.constant.CacheConstant;
import com.avic.map.common.util.FileUploadUtil;
import com.avic.map.common.util.lang.ServiceExecuteTemplate;
import com.avic.map.feign.SystemServiceFeignService;
import com.avic.map.service.CarResourceService;
import com.avic.map.service.EmergencyService;
import com.avic.map.service.MapAudioService;
import com.avic.map.service.MapShipResourceService;
import com.avic.map.service.MapTaggingService;
import com.avic.map.service.ShipResourceService;
import com.avic.map.service.ShipStaticInfoService;
import com.avic.map.service.SingleSoldierResourceService;
import com.avic.map.service.UavResourceService;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.redis.core.RedisTemplate;

import javax.annotation.Resource;


/**
 * 接口门面接口实现基类
 *
 * @author: huangsheng
 * @date: 2018/5/28 下午3:22
 */
public abstract class AbstractFacadeImpl {

    /**
     * 业务执行模板
     */
    @Autowired
    protected ServiceExecuteTemplate serviceExecuteTemplate;

    /**
     * 地图船舶资源
     */
    @Autowired
    protected MapShipResourceService mapShipResourceService;

    @Autowired
    protected EmergencyService emergencyService;

    @Resource(name = CacheConstant.REDIS_BEAN_NAME)
    protected RedisTemplate redisTemplate;

    @Autowired
    protected SystemServiceFeignService systemServiceFeignService;

    @Autowired
    protected SingleSoldierResourceService singleSoldierResourceService;

    @Autowired
    protected CarResourceService carResourceService;

    @Autowired
    protected ShipResourceService shipResourceService;

    @Autowired
    protected ObjectMapper objectMapper;

    @Autowired
    protected MapTaggingService mapTaggingService;

    @Autowired
    protected MapAudioService mapAudioService;

    @Autowired
    protected UavResourceService uavResourceService;

    @Autowired
    protected ShipStaticInfoService shipStaticInfoService;

    @Autowired
    protected FileUploadUtil fileUploadUtil;

    @Autowired
    protected CommonProperties commonProperties;

    @Autowired
    public MongoTemplate mongoTemplate;
}
